package cn.tedu.javagame.star;

import java.awt.*;

public class Star {
    // 属性
    int x, y;
    Color color;
    int speed;
    String label = "★";
    float hue;      // 色相值（0.0到1.0）
    float hueDelta; // 色相变化量

    // 构造方法
    public Star() {
        this.x = (int) (Math.random() * (StarFrame.WIDTH + 1));
        this.y = (int) (Math.random() * (StarFrame.HEIGHT + 1));
        this.hue = (float) Math.random(); // 初始随机色相
        this.hueDelta = (float) (Math.random() * 0.002 + 0.001); // 变化量：0.001到0.003
        this.color = Color.getHSBColor(hue, 1.0f, 1.0f); // 使用HSL生成颜色
        this.speed = (int) (Math.random() * 4 + 1);
    }

    // 行为：移动并改变颜色
    public void move() {
        this.y += this.speed;
        if (this.y > StarFrame.HEIGHT) {
            this.y = 0;
            this.x = (int) (Math.random() * (StarFrame.WIDTH + 1));
        }
        // 更新色相
        hue += hueDelta;
        if (hue >= 1.0f) {
            hue -= 1.0f;
        }
        // 生成新颜色
        this.color = Color.getHSBColor(hue, 1.0f, 1.0f);
    }
}